import java.util.Arrays;

public class Learn3 {
    /*使用函数求最大值
题目内容!
创建方法求两个数的最大值max2， 随后再写一个求3个数的最大值的的数max
要求：在max3这个函数中， 调用max2函数，来实现3个数的最大值计骨*/
    public static int max2(int a,int b){
        return a>b?a:b;
    }
    public static int max3(int a,int b,int c){
        return (max2(a,b)>c)?max2(a,b):c;
    }

    public static void main1(String[] args) {
        int a = 45;
        int b = 28;
        int c = 109;
        int max1 = max2(a,b);
        int max2 = max3(a,b,c);
        System.out.println(max1);
        System.out.println(max2);
    }
    /*求和的重载
    题目内容：
    在同一个类中，分别定义求两个整数的方法和三个小数之和的方法。并执行
    代码，求出结果求和的重载*/
    public static int add(int a,int b){
        return a+b;
    }
    public static double add(double a,double b,double c){
        return a+b+c;
    }

    public static void main2(String[] args) {
        int a = 28;
        int b = 72;
        double c = 1.5;
        double d = 9.2;
        double e = 1.2;
        int num1  = add(a,b);
        double num2 = add(c,d,e);
        System.out.println(num1);
        System.out.printf("%.2f",num2);
    }
    /*题日名称：
    求最大值方法的重载
            题目内容
    在同一个类中定义多个方法：要求不仅可以求2个整数的最大值，还可以求3个小数的最大值?*/
    public static int max(int a,int b){
        return a>b?a:b;
    }
    public static double max(double a,double b,double c){
        return (a>b?a:b)>c?(a>b?a:b):c;
    }

    public static void main3(String[] args) {
        int a = 28;
        int b = 72;
        double c = 1.5;
        double d = 9.2;
        double e = 1.2;
        int num1  = max(a,b);
        double num2 = max(c,d,e);
        System.out.println(num1);
        System.out.printf("%.2f",num2);
    }
    /*        改变原有数组元素的值
    题目内容!
    实现一个方法 transfom. 以数组为参数、循环将数组中的每个元素乘以2
    设置到对应的数组元素上，例如 原数组为(1,2, 3).修改之后为(2,4,6)*/
    public static void transfom(int[] arrays){
        for(int i=0;i<arrays.length;i++){
            arrays[i] *= 2;
        }
    }

    public static void main4(String[] args) {
        int[] arrays = {1,2,3,4,6,9,7};
        transfom(arrays);
        System.out.println(Arrays.toString(arrays));
    }
    /*题日名称：
    奇数位于偶数之前
    题目内容：
    调整数组顺序使得奇数位于偶数之前。调整之后，不关心大小顺序。
    如数组：[1,2, 3,4,5,6]
    调整后可能是：[1, 5, 3, 4, 2, 6]*/
    public static int[] f(int[] arrays){
        int L = 0;
        int R = arrays.length-1;
        while(L <= R){
            if(arrays[L]%2 == 0){
                if(arrays[R]%2 == 0){
                    R--;
                }else {
                    int temp = arrays[L];
                    arrays[L] = arrays[R];
                    arrays[R] = temp;
                }
            }else {
                L++;
            }
        }
        return arrays;
    }

    public static void main(String[] args) {
        int[] arrays = {1,2,4,6,9,7,11,5,3,12,14,19};
        f(arrays);
        System.out.println(Arrays.toString(arrays));
    }
}
